From 8d6f6cfb07a8fe32dc0b9577e1b2f1ee1b67b736 Mon Sep 17 00:00:00 2001
From: Thomas Devoogdt <thomas@devoogdt.com>
Date: Fri, 28 Apr 2023 10:25:16 +0200
Subject: [PATCH] build: use the system provided LuaJIT if found

e.g. buildroot has logic to build luajit,
so if pkg_check_modules can find a suitable version,
then use that one if -DFLB_PREFER_SYSTEM_LIBS=Yes.

Upstream: https://github.com/fluent/fluent-bit/pull/7286
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
 CMakeLists.txt     | 12 +++++++++++-
 src/CMakeLists.txt |  2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2da792d53..3229420c6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -128,6 +128,7 @@ option(FLB_TESTS_INTERNAL_FUZZ "Enable internal fuzz tests"    No)
 option(FLB_TESTS_OSSFUZZ       "Enable OSS-Fuzz build"         No)
 option(FLB_MTRACE              "Enable mtrace support"         No)
 option(FLB_POSIX_TLS           "Force POSIX thread storage"    No)
+option(FLB_PREFER_SYSTEM_LIBS  "Prefer system installed libraries" No)
 option(FLB_INOTIFY             "Enable inotify support"       Yes)
 option(FLB_SQLDB               "Enable SQL embedded DB"       Yes)
 option(FLB_HTTP_SERVER         "Enable HTTP Server"           Yes)
@@ -1023,7 +1024,16 @@ endif()
 # LuaJIT (Scripting Support)
 # ==========================
 if(FLB_LUAJIT)
-  include(cmake/luajit.cmake)
+  if(FLB_PREFER_SYSTEM_LIBS)
+    find_package(PkgConfig)
+    pkg_check_modules(LUAJIT luajit>=2.1.0)
+  endif()
+  if(LUAJIT_FOUND)
+    include_directories(${LUAJIT_INCLUDE_DIRS})
+  else()
+    include(cmake/luajit.cmake)
+    set(LUAJIT_LIBRARIES "libluajit")
+  endif()
   FLB_DEFINITION(FLB_HAVE_LUAJIT)
 endif()
 
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b6233d9f7..67baec456 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -221,7 +221,7 @@ endif()
 if(FLB_LUAJIT)
   set(extra_libs
     ${extra_libs}
-    "libluajit")
+    ${LUAJIT_LIBRARIES})
 endif()
 
 if(FLB_SQLDB)
-- 
2.34.1

